home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!husc6!mit-eddie!uw-beaver!tektronix!tekgen!tekred!games-request
- From: games-request@tekred.TEK.COM
- Newsgroups: comp.sources.games
- Subject: v02i089: cursive - cursive banner program
- Message-ID: <1844@tekred.TEK.COM>
- Date: 19 Nov 87 18:15:57 GMT
- Sender: billr@tekred.TEK.COM
- Lines: 1660
- Approved: billr@tekred.TEK.COM
-
- Submitted by: Jan Wolter <umix!umich!eecs.umich.edu!palam.eecs.umich.edu!janc@uunet.uu.net>
- Comp.sources.games: Volume 2, Issue 89
- Archive-name: cursive.shr
-
- [I tried it and it really works. Neat, too! -br]
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of shell archive."
- # Contents: README Makefile cursive.6 cursive.c cursive.h font.c
- # Wrapped by billr@tekred on Thu Nov 19 10:10:23 1987
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f README -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"README\"
- else
- echo shar: Extracting \"README\" \(424 characters\)
- sed "s/^X//" >README <<'END_OF_README'
- XThis is a program for generating horizontal cursive banners. It's main
- Xuse is for generating cute signatures for email. It is copyrighted by
- XJan Wolter, but may be distributed freely. Have what fun you can...
- X
- X ___ _ __ _
- X ( > ' ) / // _/_
- X __/___. ____ / / / __|/ / _ __
- X / / (_/|_/ / <__ (_(_/ (_) \_<__</_/ (__
- X <_/
- X janc@crim.eecs.umich.edu
- X
- END_OF_README
- if test 424 -ne `wc -c <README`; then
- echo shar: \"README\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f Makefile -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"Makefile\"
- else
- echo shar: Extracting \"Makefile\" \(466 characters\)
- sed "s/^X//" >Makefile <<'END_OF_Makefile'
- XCFLAGS = -g
- X
- Xcursive: cursive.o x.o xs.o
- X cc -g -o cursive cursive.o x.o xs.o
- X
- Xx.o: x.c
- X
- Xxs.o: xs.c
- X
- Xx.c: font.c
- X xstr font.c
- X
- Xxs.c: font.c
- X xstr font.c
- X
- X# This is for use if you haven't got the xstr command. The program works
- X# the same, but is slightly bigger.
- X
- Xlcursive: cursive.o font.o
- X cc -g -o lcursive cursive.o font.o
- X
- Xcursive.shar: cursive.c font.c cursive.h cursive.6 Makefile shar
- X shar cursive.c font.c cursive.h cursive.6 Makefile shar > cursive.shar
- END_OF_Makefile
- if test 466 -ne `wc -c <Makefile`; then
- echo shar: \"Makefile\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f cursive.6 -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"cursive.6\"
- else
- echo shar: Extracting \"cursive.6\" \(1300 characters\)
- sed "s/^X//" >cursive.6 <<'END_OF_cursive.6'
- X.TH CURSIVE 6 "24 July 1985"
- X.UC
- X.SH NAME
- Xcursive \- print text in cursive script
- X.SH SYNOPSIS
- X.B /usr/games/cursive
- X[
- X.BI \-i n
- X]
- X[
- X.BI \-t n
- X]
- X[message]
- X.SH DESCRIPTION
- X.I Cursive
- Xprints a line of text in a rather crude cursive script.
- XIt is intended for use mainly for the generation of decorative signatures
- Xfor electronic mail.
- XIf message text is given on the command line, that text is used.
- XOtherwise the text will be read from standard input up to an end of file.
- XThe
- X.B \-i
- Xoption sets the minimum spacing between adjacent characters.
- XThe default is
- X.B \-i1 .
- XThe
- X.B \-t
- Xoption sets the length of the trailing lines on the end of each word.
- XThe default is
- X.B \-t1 .
- X.PP
- XThe '_' character is treated in a special way. It may be inserted in
- Xthe text anywhere you wish to lengthen a connecting line between two
- Xletters.
- X.SH BUGS
- XMany ASCII characters are not defined, notably the numbers and symbols.
- XPunctuation is mostly available.
- XSome characters are rather ugly.
- XThe author has lousy handwriting.
- X.SH AUTHOR
- XJan Wolter. UUCP mail to janc@crim.eecs.umich.edu
- X.SH COPYRIGHT
- XThis program and the cursive font it generates are copyrighted by Jan Wolter.
- XBoth may be freely used and distributed in any way whatsoever, so long as
- Xthe author's name is left in the source code and documentation.
- END_OF_cursive.6
- if test 1300 -ne `wc -c <cursive.6`; then
- echo shar: \"cursive.6\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f cursive.c -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"cursive.c\"
- else
- echo shar: Extracting \"cursive.c\" \(6630 characters\)
- sed "s/^X//" >cursive.c <<'END_OF_cursive.c'
- X/* CURSIVE SIGNATURE PROGRAM Version 0.10
- X * (c) 1985 - Jan Wolter
- X *
- X * Purpose: This program translates text into crude cursive script.
- X * It works on any terminal with a fairly normal character
- X * set (must have backslashes and underscores and suchlike).
- X * The font includes all upper and lower case letters, most
- X * punctuation, and a few symbols. No numbers are included
- X * (It's difficult to make a nice italicized set of numbers).
- X * Cursive was originally written to generate fancy signatures
- X * for electronic mail messages, but other uses may occur to
- X * you. The attractiveness of the font varies greatly with
- X * the display device.
- X *
- X * Usage: If no command line arguments are given, cursive reads the
- X * text to translate from standard input. Otherwise the args
- X * are translated (e.g. "cursive Jan Wolter" prints my name).
- X * Output is always to standard output. A couple command line
- X * arguments are recognized:
- X *
- X * -in Sets the amount of space to insert between letters.
- X * The default is "-i1". "-i0" gives interesting
- X * results.
- X * -tn Sets the length of the trailing line off the end
- X * of each word. The default is "-t1".
- X *
- X * One character in the text is treated in a special way:
- X *
- X * '_' Can be inserted in text to slightly lengthen the
- X * the spacing between two letters, or add a longer
- X * tail to the end of a word.
- X *
- X * Internals: Unfortunately, the program is a kludge and the font is
- X * somewhat difficult to edit. It should be easy to port
- X * though. Systems with short integers or unsigned characters
- X * should be no problem. You should probably run "xstr" on the
- X * font.c file, but if you haven't got "xstr", just compiling it
- X * the usual way works fine.
- X *
- X * Copyright: Both the cursive program and the font it generates are
- X * copyrighted by yours truly. However, both may be used
- X * and distributed freely. You even have my permission to
- X * sell it, or include in it a system that you sell. I only
- X * ask that my name be retained on this program, or any direct
- X * decendents of this program with approximately the same
- X * visibility as in this posting.
- X *
- X * Mail: I'm interested in any comments you have on this program.
- X * I can be mailed at "janc@crim.eecs.umich.edu". Better yet,
- X * if you are into teleconferencing, call M-Net at (313) 994-6333
- X * and type "newuser" at the "login:" prompt to give yourself an
- X * account. Send mail to janc, or join the "ugames" conference.
- X *
- X * Have fun,
- X * ___ _ __ _
- X * ( > ' ) / // _/_
- X * __/___. ____ / / / __|/ / _ __
- X * / / (_/|_/ / <__ (_(_/ (_) \_<__</_/ (__
- X * <_/
- X */
- X
- X#include <stdio.h>
- X#include "cursive.h"
- X
- Xchar *buffer[6]; /* memory buffers to build up line in */
- Xint c[6]; /* current index in each of the buffer lines */
- Xint tail[6]; /* which buffer lines have tails in them */
- Xint lasttail; /* which line was the last letter's tail */
- Xint space; /* how much white space before the next letter */
- Xint interspace = 1; /* how much to spread adjacent letters out */
- Xint taillen = 1; /* how long the tails on ends of words should be */
- Xchar firstletter; /* is this the first letter on the line? */
- Xchar message[256] = ""; /* message to print */
- X
- Xchar *malloc();
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X{
- Xint i;
- Xchar *s,*m;
- Xchar ch;
- X
- X m = message;
- X for (i = 1; i < argc; i++)
- X {
- X if (*argv[i] == '-')
- X switch(ch = argv[i][1])
- X {
- X case 'i':
- X case 't':
- X s = argv[i]+2;
- X if (*s == '\000')
- X if (++i < argc)
- X s = argv[i];
- X if (*s < '0' || *s > '9')
- X {
- X printf("%s: Illegal value %s\n",
- X argv[0],s);
- X exit(1);
- X }
- X if (ch == 'i')
- X interspace = atoi(s);
- X else
- X taillen = atoi(s);
- X break;
- X default:
- X printf("usage: %s [-tn] [-in] message\n",
- X argv[0]);
- X exit(1);
- X }
- X else
- X {
- X if (m != message)
- X *(m++) = ' ';
- X for (s=argv[i]; *s != '\000'; s++)
- X *(m++) = *s;
- X }
- X }
- X /* Do the deed */
- X if (m != message)
- X {
- X /* Message from the arg list */
- X *(m++) = 0;
- X prline(message);
- X }
- X else
- X {
- X /* Message from standard input */
- X while (gets(message) != NULL)
- X prline(message);
- X }
- X}
- X
- X
- X/* Add the given letter to the end of the current line */
- X
- Xplace(let)
- Xstruct letter *let;
- X{
- Xint i,j,n;
- Xint col;
- Xint max = -10000;
- Xchar pad;
- Xchar *l;
- X
- X if (firstletter)
- X {
- X col = space; /* Leading spaces */
- X firstletter = 0;
- X }
- X else
- X {
- X /* Find the furthest left position we can place this letter */
- X for(i=0; i<6; i++)
- X {
- X if (let->line[i][0] != '\000' &&
- X (col = c[i] - let->spcs[i]) > max)
- X max = col;
- X }
- X
- X /* Insert some spaces between letters */
- X col = max + space + interspace;
- X }
- X
- X for(i=0; i<6; i++)
- X
- X /* If Nothing on this Line, Skip It */
- X if (let->line[i][0] != '\000')
- X {
- X /* Number of Spaces to Put on this Line? */
- X n = col - c[i] + let->spcs[i];
- X
- X /* Flyers off Ends of Letters */
- X if (tail[i])
- X for (j = 0;
- X j < 5 && n > space + 2; j++,n--)
- X buffer[i][c[i]++] = '_';
- X
- X /* Connecting Lines Between Letters */
- X pad = (lasttail == i && let->tailin == i) ? '_' : ' ';
- X
- X /* In the middle of the intersection of South and */
- X /* East University, someone is playing the piano. */
- X for ( ; n > 0; n--)
- X buffer[i][c[i]++] = pad;
- X
- X /* Copy in the letter text */
- X for (l = let->line[i]; *l != '\000'; l++)
- X buffer[i][c[i]++] = *l;
- X
- X tail[i] = (i == let->tailout);
- X }
- X
- X lasttail = let->tailout;
- X space = 0;
- X}
- X
- X/* Lengthen the last trailer by n */
- Xtailer(n)
- Xint n;
- X{
- Xint j;
- X if (lasttail >= 0)
- X for (j = 0; j < n; j++)
- X buffer[lasttail][c[lasttail]++] = '_';
- X}
- X
- X/* Handle a line */
- Xprline(s)
- Xchar *s;
- X{
- Xint l,i;
- Xchar *ch;
- Xshort lcode;
- X
- X lasttail = -1;
- X firstletter = 1;
- X space = 0;
- X /* Get some memory to put the output into */
- X l = strlen(s) * (CHARWIDTH + interspace);
- X for (i=0;i<6;i++)
- X {
- X buffer[i] = malloc((unsigned)l);
- X tail[i] = c[i] = 0;
- X }
- X
- X /* do each letter */
- X for (ch=s; *ch != '\000'; ch++)
- X {
- X
- X *ch &= '\177';
- X /* Find the letter */
- X lcode = (lasttail != 2) ? code1[*ch] : code2[*ch];
- X if (lcode >= 0)
- X place(&list[lcode]);
- X else
- X /* Various Special characters */
- X switch(lcode)
- X {
- X case SP:
- X /* Insert white space before next letter */
- X tailer(taillen);
- X space += 3;
- X lasttail = -1;
- X break;
- X case ST:
- X /* Lengthen the last tail */
- X if (lasttail >= 0)
- X buffer[lasttail][c[lasttail]++] = '_';
- X break;
- X }
- X }
- X tailer(taillen);
- X
- X /* print the line and release the memory */
- X for (i=0;i<6;i++)
- X {
- X buffer[i][c[i]++] = '\n';
- X write(1,buffer[i],c[i]);
- X free(buffer[i]);
- X }
- X}
- END_OF_cursive.c
- if test 6630 -ne `wc -c <cursive.c`; then
- echo shar: \"cursive.c\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f cursive.h -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"cursive.h\"
- else
- echo shar: Extracting \"cursive.h\" \(544 characters\)
- sed "s/^X//" >cursive.h <<'END_OF_cursive.h'
- Xstruct letter {
- X char *line[6]; /* What's on each of the six lines */
- X char spcs[6]; /* Number of leading spaces for each */
- X short tailin,tailout; /* Where the lines in and out go */
- X };
- X
- X/* Special Codes for Character Table */
- X
- X#define XX -1 /* Ignore character */
- X#define SP -2 /* Space */
- X#define ST -3 /* Extend trailer */
- X#define SA -4 /* Alternate font number */ /* Not used */
- X#define SN -5 /* Numbers */ /* Not used */
- X
- X#define CHARWIDTH 10
- X
- Xextern struct letter list[];
- Xextern short code1[], code2[];
- END_OF_cursive.h
- if test 544 -ne `wc -c <cursive.h`; then
- echo shar: \"cursive.h\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f font.c -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"font.c\"
- else
- echo shar: Extracting \"font.c\" \(11667 characters\)
- sed "s/^X//" >font.c <<'END_OF_font.c'
- X/* CURSIVE FONT FILE
- X *
- X * This font is copyrighted by Jan Wolter. See notes in "cursive.c".
- X *
- X * Several of the letters are rather ugly, but the wonder is not how
- X * well it sings. A few uppercase letters are a bit too tall. The
- X * font has to some extent been chosen to make my name look good to me.
- X * Those of you with different names will have to take pot luck, or fix
- X * it to taste. Editing this file must be done with some care. The
- X * numbers on the defines must match the index numbers of the letter
- X * in the list[] structure. The six numbers after the character are how
- X * many blank spaces must be added to the beginning of each of the six
- X * scan lines to make them line up. The last two numbers are the scan
- X * line numbers in which the character is connected to the preceeding and
- X * succeeding characters. -1 means it isn't. There are two versions of
- X * each lower case letter, one with the line coming in on line 2, and one
- X * with the line coming in on line 3.
- X */
- X
- X#include "cursive.h"
- X
- Xstruct letter list[] = {
- X
- X#define LA 0 /* a type 1 */
- X { {
- X "",
- X "",
- X "__.",
- X "(_/|",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LB 1 /* b type 1 */
- X { {
- X "",
- X "/",
- X "/_",
- X "/_)",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 3,2
- X },
- X
- X#define LC 2 /* c type 1 */
- X { {
- X "",
- X "",
- X "_.",
- X "(_",
- X "",
- X ""}
- X ,
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LD 3 /* d type 1 */
- X { {
- X "",
- X "/",
- X "__/",
- X "(_/",
- X "",
- X ""
- X },
- X {0,4,1,0,0,0},
- X 3,3
- X },
- X
- X#define LE 4 /* e type 1 */
- X { {
- X "",
- X "",
- X "_",
- X "</",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LF 5 /* f type 1 */
- X { {
- X "",
- X "/)",
- X "// ",
- X "//",
- X "/>",
- X "</ "
- X },
- X {0,4,3,2,1,0},
- X 3,3
- X },
- X
- X#define LG 6 /* g type 1 */
- X { {
- X "",
- X "",
- X "_,",
- X "(_)",
- X "/|",
- X "|/"
- X },
- X {0,0,1,0,1,0},
- X 3,3
- X },
- X
- X#define LH 7 /* h type 1 */
- X { {
- X "",
- X "/",
- X "/_",
- X "/ /",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define LI 8 /* i type 1 */
- X { {
- X "",
- X "",
- X "o",
- X "<",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LJ 9 /* j type 1 */
- X { {
- X "",
- X "",
- X "o",
- X "/",
- X "/",
- X "-'"
- X },
- X {0,0,4,3,2,0},
- X 3,3
- X },
- X
- X#define LK 10 /* k type 1 */
- X { {
- X "",
- X "/",
- X "/_ ",
- X "/ <",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define LL 11 /* l type 1 */
- X { {
- X "_",
- X "//",
- X "//",
- X "</",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define LM 12 /* m type 1 */
- X { {
- X "",
- X "",
- X "______",
- X "/ / / <",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LN 13 /* n type 1 */
- X { {
- X "",
- X "",
- X "____",
- X "/ / <",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LO 14 /* o type 1 */
- X { {
- X "",
- X "",
- X "_",
- X "(_)",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,2
- X },
- X
- X#define LP 15 /* p type 1 */
- X { {
- X "",
- X "",
- X "_",
- X "/_)",
- X "/",
- X "'"
- X },
- X {0,0,3,2,1,0},
- X 3,3
- X },
- X
- X#define LQ 16 /* q type 1 */
- X { {
- X "",
- X "",
- X "_,",
- X "(_)",
- X "/>",
- X "|/"
- X },
- X {0,0,1,0,1,0},
- X 3,3
- X },
- X
- X#define LR 17 /* r type 1 */
- X { {
- X "",
- X "",
- X "__",
- X "/ (",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LS 18 /* s type 1 */
- X { {
- X "",
- X "",
- X "_",
- X "/_)",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LT 19 /* t type 1 */
- X { {
- X "",
- X "_/_",
- X "/",
- X "<_",
- X "",
- X ""
- X },
- X {0,1,1,0,0,0},
- X 3,3
- X },
- X
- X#define LU 20 /* u type 1 */
- X { {
- X "",
- X "",
- X ". .",
- X "(_/",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LV 21 /* v type 1 */
- X { {
- X "",
- X "",
- X ", ",
- X "\\/",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 3,2
- X },
- X
- X#define LW 22 /* w type 1 */
- X { {
- X "",
- X "",
- X ", , ,",
- X "(_(_/",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LX 23 /* x type 1 */
- X { {
- X "",
- X "",
- X "_.,",
- X "/ /\\",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 3,3
- X },
- X
- X#define LY 24 /* y type 1 */
- X { {
- X "",
- X "",
- X "__ ,",
- X "/ (_/",
- X "/",
- X "'"
- X },
- X {0,0,1,0,3,2},
- X 3,3
- X },
- X
- X#define LZ 25 /* z type 1 */
- X { {
- X "",
- X "",
- X "__.",
- X "/ |",
- X "(|",
- X ""
- X },
- X {0,0,1,0,2,0},
- X 3,3
- X },
- X
- X#define NA 26 /* a type 2 */
- X { {
- X "",
- X "",
- X "__.",
- X "(_/|",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 2,3
- X },
- X
- X#define NB 27 /* b type 2 */
- X { {
- X "",
- X "/",
- X "/_",
- X "/_)",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 2,2
- X },
- X
- X#define NC 28 /* c type 2 */
- X { {
- X "",
- X "",
- X "__.",
- X "(_",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define ND 29 /* d type 2 */
- X { {
- X "",
- X "/",
- X "___/",
- X "(_/",
- X "",
- X ""
- X },
- X {0,4,0,0,0,0},
- X 2,3
- X },
- X
- X#define NE 30 /* e type 2 */
- X { {
- X "",
- X "",
- X "/>",
- X "(_",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 2,3
- X },
- X
- X#define NF 31 /* f type 2 */
- X { {
- X "",
- X "/)",
- X "//",
- X "/_",
- X "/>",
- X "</"
- X },
- X {0,4,3,2,1,0},
- X 2,3
- X },
- X
- X#define NG 32 /* g type 2 */
- X { {
- X "",
- X "",
- X "__,",
- X "(_)",
- X "/|",
- X "|/"
- X },
- X {0,0,0,0,1,0},
- X 2,3
- X },
- X
- X#define NH 33 /* h type 2 */
- X { {
- X "",
- X "/",
- X "/_",
- X "/ /",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 2,3
- X },
- X
- X#define NI 34 /* i type 2 */
- X { {
- X "",
- X "",
- X "o",
- X "<_",
- X "",
- X ""
- X },
- X {0,0,1,0,0,0},
- X 2,3
- X },
- X
- X#define NJ 35 /* j type 2 */
- X { {
- X "",
- X "",
- X "_o",
- X "/_",
- X "/",
- X "-'"
- X },
- X {0,0,3,3,2,0},
- X 2,3
- X },
- X
- X#define NK 36 /* k type 2 */
- X { {
- X "",
- X "/",
- X "/_",
- X "/ <",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X 2,3
- X },
- X
- X#define NL 37 /* l type 2 */
- X { {
- X "_",
- X "//",
- X "|/",
- X "\\",
- X "",
- X ""
- X },
- X {2,1,0,1,0,0},
- X 2,3
- X },
- X
- X#define NM 38 /* m type 2 */
- X { {
- X "",
- X "",
- X "_______",
- X "/ / / <",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define NN 39 /* n type 2 */
- X { {
- X "",
- X "",
- X "_____",
- X "/ / <",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define NO 40 /* o type 2 */
- X { {
- X "",
- X "",
- X "___",
- X "(_)",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,2
- X },
- X
- X#define NP 41 /* p type 2 */
- X { {
- X "",
- X "",
- X "__",
- X "/_)",
- X "/",
- X "'"
- X },
- X {0,0,2,2,1,0},
- X 2,3
- X },
- X
- X#define NQ 42 /* q type 2 */
- X { {
- X "",
- X "",
- X "__,",
- X "(_)",
- X "/>",
- X "|/"
- X },
- X {0,0,0,0,1,0},
- X 2,3
- X },
- X
- X#define NR 43 /* r type 2 */
- X { {
- X "",
- X "",
- X ",_",
- X "(",
- X "",
- X ""
- X },
- X {0,0,0,1,0,0},
- X 2,3
- X },
- X
- X#define NS 44 /* s type 2 */
- X { {
- X "",
- X "",
- X "___ ",
- X "\\_)_",
- X "",
- X ""
- X },
- X {0,0,0,1,0,0},
- X 2,3
- X },
- X
- X#define NT 45 /* t type 2 */
- X { {
- X "",
- X "_/_",
- X "_/",
- X "(_",
- X "",
- X ""
- X },
- X {0,1,0,0,0,0},
- X 2,3
- X },
- X
- X#define NU 46 /* u type 2 */
- X { {
- X "",
- X "",
- X "_. .",
- X "(_/",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define NV 47 /* v type 2 */
- X { {
- X "",
- X "",
- X " .",
- X "\\/",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define NW 48 /* w type 2 */
- X { {
- X "",
- X "",
- X "_, , ,",
- X "(_(_/",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X 2,3
- X },
- X
- X#define NX 49 /* x type 2 */
- X { {
- X "",
- X "",
- X "_.,",
- X "/\\",
- X "",
- X ""
- X },
- X {0,0,0,1,0,0},
- X 2,3
- X },
- X
- X#define NY 50 /* y type 2 */
- X { {
- X "",
- X "",
- X "_ ,",
- X "(_/__",
- X "/",
- X "'"
- X },
- X {0,0,0,0,1,0},
- X 2,3
- X },
- X
- X#define NZ 51 /* z type 2 */
- X { {
- X "",
- X "",
- X "__.",
- X "|",
- X "(|",
- X ""
- X },
- X {0,0,0,2,1,0},
- X 2,3
- X },
- X
- X#define UA 52 /* A */
- X { {
- X "__",
- X "/ )",
- X "/--/",
- X "/ (",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define UB 53 /* B */
- X { {
- X "__",
- X "/ )",
- X "/--<",
- X "/___/",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define UC 54 /* C */
- X { {
- X "__",
- X "/ )",
- X "/",
- X "(__/",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UD 55 /* D */
- X { {
- X "__",
- X "/ )",
- X "/ /",
- X "/__/",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X 3,3
- X },
- X
- X#define UE 56 /* E */
- X { {
- X "__",
- X "/ `",
- X "/--",
- X "(___,",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UF 57 /* F */
- X { {
- X "_____",
- X " / '",
- X ",-/-,",
- X "(_/",
- X "",
- X ""
- X },
- X {3,3,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UG 58 /* G */
- X { {
- X "() ,",
- X "/`-'|",
- X "/ /",
- X "/__-<",
- X "",
- X ""
- X },
- X {2,2,1,0,0,0},
- X -1,3
- X },
- X
- X#define UH 59 /* H */
- X { {
- X "_ ,",
- X "' ) /",
- X "/--/",
- X "/ (",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,3
- X },
- X
- X#define UI 60 /* I */
- X { {
- X "_",
- X "| )",
- X ",---|/",
- X "\\_/ \\",
- X "",
- X ""
- X },
- X {5,4,0,1,0,0},
- X -1,3
- X },
- X
- X#define UJ 61 /* J */
- X { {
- X "___",
- X "( >",
- X "__/",
- X "/ /",
- X "<_/",
- X ""
- X },
- X {2,1,2,1,0,0},
- X -1,2
- X },
- X
- X#define UK 62 /* K */
- X { {
- X "_ ,",
- X "' ) /",
- X "/-<",
- X "/ )",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UL 63 /* L */
- X { {
- X "_",
- X "_//",
- X "/",
- X "/___",
- X "",
- X ""
- X },
- X {3,1,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UM 64 /* M */
- X { {
- X "_ _ _",
- X "' ) ) )",
- X "/ / /",
- X "/ ' (",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,3
- X },
- X
- X#define UN 65 /* N */
- X { {
- X "_ __",
- X "' ) )",
- X "/ /",
- X "/ (",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,3
- X },
- X
- X#define UO 66 /* O */
- X { {
- X "__",
- X "/ ')",
- X "/ /",
- X "(__/",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UP 67 /* P */
- X { {
- X "_ __",
- X "' ) )",
- X "/--'",
- X "/",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UQ 68 /* Q */
- X { {
- X "__",
- X "/ )",
- X "/ /",
- X "(_\\/",
- X "`",
- X ""
- X },
- X {3,2,1,0,3,0},
- X -1,-1
- X },
- X
- X#define UR 69 /* R */
- X { {
- X "_ __",
- X "' ) )",
- X "/--'",
- X "/ \\",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,3
- X },
- X
- X#define US 70 /* S */
- X { {
- X "()",
- X "/\\",
- X "/ )",
- X "/__/_",
- X "",
- X ""
- X },
- X {2,2,1,0,0,0},
- X -1,3
- X },
- X
- X#define UT 71 /* T */
- X { {
- X "______",
- X "/ ",
- X "--/",
- X "(_/",
- X "",
- X ""
- X },
- X {2,4,1,0,0,0},
- X -1,-1
- X },
- X
- X#define UU 72 /* U */
- X { {
- X "_ _",
- X "' ) /",
- X "/ /",
- X "(__/",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,0
- X },
- X
- X#define UV 73 /* V */
- X { {
- X "_ ",
- X "' ) /",
- X "( /",
- X "\\/",
- X "",
- X ""
- X },
- X {1,0,1,2,0,0},
- X -1,0
- X },
- X
- X#define UW 74 /* W */
- X { {
- X "_ ",
- X "' ) /",
- X "/ / /",
- X "(_(_/",
- X "",
- X ""
- X },
- X {1,0,1,0,0,0},
- X -1,0
- X },
- X
- X#define UX 75 /* X */
- X { {
- X "_ ,",
- X "' \\ /",
- X "X",
- X "/ \\",
- X "",
- X ""
- X },
- X {1,0,3,2,0,0},
- X -1,3
- X },
- X
- X#define UY 76 /* Y */
- X { {
- X "_ ,",
- X "' ) /",
- X "/ /",
- X "(__/",
- X "//",
- X "(/"
- X },
- X {1,0,1,0,1,0},
- X -1,3
- X },
- X
- X#define UZ 77 /* Z */
- X { {
- X "___",
- X "/",
- X "/",
- X "/__",
- X "",
- X ""
- X },
- X {0,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define PE 78 /* ! */
- X { {
- X "/",
- X "/",
- X "'",
- X "o",
- X "",
- X ""
- X },
- X {3,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define PU 79 /* " */
- X { {
- X "o o",
- X "' '",
- X "",
- X "",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PX 80 /* # */
- X { {
- X "/ /",
- X "-/-/-",
- X "-/-/-",
- X "/ /",
- X "",
- X ""
- X },
- X {3,1,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PK 81 /* $ */
- X { {
- X ",-/-",
- X "(_/",
- X "/ )",
- X "-/-'",
- X "",
- X ""
- X },
- X {2,1,2,0,0,0},
- X -1,-1
- X },
- X
- X#define PF 82 /* ' */
- X { {
- X "o",
- X "'",
- X "",
- X "",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PC 83 /* , */
- X { {
- X "",
- X "",
- X "",
- X "o",
- X "'",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PM 84 /* - */
- X { {
- X "",
- X "",
- X "---",
- X "",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PP 85 /* . */
- X { {
- X "",
- X "",
- X "",
- X "o",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PD 86 /* : */
- X { {
- X "",
- X "o",
- X "",
- X "o",
- X "",
- X ""
- X },
- X {0,2,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PS 87 /* ; */
- X { {
- X "",
- X "o",
- X "",
- X "o",
- X "'",
- X ""
- X },
- X {0,2,0,0,0,0},
- X -1,-1
- X },
- X
- X#define PQ 88 /* ? */
- X { {
- X "__",
- X "__)",
- X "/",
- X "o",
- X "",
- X ""
- X },
- X {2,2,1,0,0,0},
- X -1,-1
- X },
- X
- X#define PB 89 /* ` */
- X { {
- X "o",
- X "`",
- X "",
- X "",
- X "",
- X ""
- X },
- X {0,0,0,0,0,0},
- X -1,-1
- X }
- X };
- X
- Xshort code1[] = {
- X /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */
- X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
- X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
- X SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
- X SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
- X XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
- X UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
- X PB, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL, LM, LN, LO,
- X LP, LQ, LR, LS, LT, LU, LV, LW, LX, LY, LZ, XX, XX, XX, XX, XX };
- X
- Xshort code2[] = {
- X /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */
- X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
- X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
- X SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
- X SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
- X XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
- X UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
- X PB, NA, NB, NC, ND, NE, NF, NG, NH, NI, NJ, NK, NL, NM, NN, NO,
- X NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ, XX, XX, XX, XX, XX };
- END_OF_font.c
- if test 11667 -ne `wc -c <font.c`; then
- echo shar: \"font.c\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of shell archive.
- exit 0
-